home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c4.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  39.9 KB  |  1,586 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. void rT153collect_for(/*C*/int a1){
  11. /*IF*/if ((a1)==(1001)) {
  12. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  13. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  14. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  15. }
  16. /*FI*/}
  17. /*FI*/}
  18. else {
  19. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  20. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  21. }
  22. /*FI*/}
  23. /*FI*/}
  24. void rT153add_into(T153 *C,T0 * a1){
  25. T0 * _fn=NULL;
  26. int _i=0;
  27. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  28. _i=1;
  29. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  30. _fn=rT128item((T128*)(C)->_names,_i);
  31. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  32. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  33. /*UT*/(T45*)oRBC27eh;
  34. rT45add_position(XrT67start_position(_fn));
  35. /*UT*/(T45*)oRBC27eh;
  36. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  37. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  38. /*UT*/(T45*)oRBC27eh;
  39. rT45append(XrT67to_string(_fn));
  40. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  41. }
  42. else {
  43. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  44. }
  45. /*FI*/_i=(_i)+(1);
  46. }
  47. }
  48. T0 * rT153try_to_undefine(T153 *C,T0 * a1,T0 * a2){
  49. T0 * R=NULL;
  50. /*IF*/if (XrT67is_frozen(a1)) {
  51. /*UT*/(T45*)oRBC27eh;
  52. rT45add_position(rT153start_position(C));
  53. rT153error(XrT67start_position(a1),(T0 *)ms482);
  54. rT153fe_undefine(a1,a2);
  55. }
  56. else {
  57. R=rT153try_to_undefine_aux(C,a1,a2);
  58. /*IF*/if (((int)R)) {
  59. XrT203set_clients(R,(C)->_clients);
  60. }
  61. else {
  62. rT153fe_undefine(a1,a2);
  63. }
  64. /*FI*/}
  65. /*FI*/return R;
  66. }
  67. T0 * rT153try_to_undefine_aux(T153 *C,T0 * a1,T0 * a2){
  68. T0 * R=NULL;
  69. /*UT*/(T45*)oRBC27eh;
  70. rT45add_position(rT153start_position(C));
  71. rT153error(XrT67start_position(a1),(T0 *)ms1518);
  72. rT153fe_undefine(a1,a2);
  73. return R;
  74. }
  75. int rT153can_hide(T153 *C,T0 * a1,T0 * a2){
  76. int R=0;
  77. int _ne=0;
  78. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  79. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  80. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  81. /*UT*/(T45*)oRBC27eh;
  82. rT45add_position(XrT62start_position(a1));
  83. rT153error(rT153start_position(C),(T0 *)ms501);
  84. }
  85. /*FI*/}
  86. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  87. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  88. /*UT*/(T45*)oRBC27eh;
  89. rT45add_position(XrT62start_position(a1));
  90. rT153error(rT153start_position(C),(T0 *)ms502);
  91. }
  92.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  93. /*UT*/(T45*)oRBC27eh;
  94. rT45add_position(XrT62start_position(a1));
  95. rT153error(rT153start_position(C),(T0 *)ms503);
  96. }
  97. /*FI*/}
  98. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  99. /*IF*/if (((int)(C)->_result_type)) {
  100. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  101. /*UT*/(T45*)oRBC27eh;
  102. rT45append((T0 *)ms504);
  103. /*UT*/(T45*)oRBC27eh;
  104. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  105. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  106. }
  107. /*FI*/}
  108. /*FI*/}
  109. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  110. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  111. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  112. /*UT*/(T45*)oRBC27eh;
  113. rT45add_position(XrT62start_position(a1));
  114. /*UT*/(T45*)oRBC27eh;
  115. rT45add_position(rT153start_position(C));
  116. /*UT*/(T45*)oRBC27eh;
  117. rT45append((T0 *)ms506);
  118. /*UT*/(T45*)oRBC27eh;
  119. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  120. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  121. }
  122. /*FI*/}
  123. /*FI*/}
  124. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  125. return R;
  126. }
  127. T0 * rT153base_class_name(T153 *C){
  128. T0 * R=NULL;
  129. R=((T50*)(C)->_base_class)->_base_class_name;
  130. return R;
  131. }
  132. void rT153copy(T153 *C,T0 * a1){
  133. /*IF*//*AF*//*AE*/
  134. memcpy(C,a1,s[C->id]);
  135. /*FI*/}
  136. T0 * rT153value(T153 *C,int a1){
  137. T0 * R=NULL;
  138. R=(C)->_value_mem;
  139. return R;
  140. }
  141. void rT153make_e_feature(T153 *C,T0 * a1,T0 * a2){
  142. C->_names=a1;
  143. C->_result_type=a2;
  144. }
  145. void rT153make(T153 *C,T0 * a1,T0 * a2,T0 * a3){
  146. rT153make_e_feature(C,a1,a2);
  147. C->_value_mem=a3;
  148. }
  149. T0 * rT154first_name(T154 *C){
  150. T0 * R=NULL;
  151. R=rT128item((T128*)(C)->_names,1);
  152. return R;
  153. }
  154. void rT154fatal_error(/*C*/T0* a1){
  155. rT45fatal_error((T45*)oRBC27eh,a1);
  156. }
  157. T0 * rT154to_run_feature(T154 *C,T0 * a1,T0 * a2){
  158. T0 * R=NULL;
  159. T0 * _rc=NULL;
  160. _rc=XrT58run_class(a1);
  161. R=rT260at((T260*)_rc,a2);
  162. if ((int)R) switch (((T0 *)R)->id) {
  163. case 277: 
  164. break;
  165. default:
  166. R = NULL;
  167. };/*IF*/if (!(R)) {
  168. {T277 *n=((T277*)new(277));
  169. rT277make(n,a1,a2,(T0 *)C);
  170. R=(T0 *)n;}
  171. }
  172. /*FI*/return R;
  173. }
  174. void rT154error(/*C*/T0 * a1,T0* a2){
  175. /*UT*/(T45*)oRBC27eh;
  176. rT45add_position(a1);
  177. rT45error((T45*)oRBC27eh,a2);
  178. }
  179. void rT154fe_undefine(/*C*/T0 * a1,T0 * a2){
  180. /*UT*/(T45*)oRBC27eh;
  181. rT45append((T0 *)ms483);
  182. /*UT*/(T45*)oRBC27eh;
  183. rT45append(XrT67to_string(a1));
  184. /*UT*/(T45*)oRBC27eh;
  185. rT45append((T0 *)ms484);
  186. /*UT*/(T45*)oRBC27eh;
  187. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  188. rT154fatal_error((T0 *)ms485);
  189. }
  190. int rT154is_merge_with(T154 *C,T0 * a1,T0 * a2){
  191. int R=0;
  192. int _ne=0;
  193. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  194. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  195. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  196. /*UT*/(T45*)oRBC27eh;
  197. rT45add_position(XrT62start_position(a1));
  198. rT154error(rT154start_position(C),(T0 *)ms488);
  199. }
  200. /*FI*/}
  201. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  202. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  203. /*UT*/(T45*)oRBC27eh;
  204. rT45add_position(XrT62start_position(a1));
  205. rT154error(rT154start_position(C),(T0 *)ms489);
  206. }
  207.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  208. /*UT*/(T45*)oRBC27eh;
  209. rT45add_position(XrT62start_position(a1));
  210. rT154error(rT154start_position(C),(T0 *)ms490);
  211. }
  212. /*FI*/}
  213. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  214. /*IF*/if (((int)(C)->_result_type)) {
  215. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  216. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  217. }
  218. /*FI*/}
  219. /*FI*/}
  220. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  221. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  222. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  223. /*UT*/(T45*)oRBC27eh;
  224. rT45add_position(XrT62start_position(a1));
  225. rT154error(rT154start_position(C),(T0 *)ms494);
  226. }
  227. /*FI*/}
  228. /*FI*/}
  229. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  230. return R;
  231. }
  232. T0 * rT154start_position(T154 *C){
  233. T0 * R=NULL;
  234. R=XrT67start_position(rT154first_name(C));
  235. return R;
  236. }
  237. void rT154collect_for(/*C*/int a1){
  238. /*IF*/if ((a1)==(1001)) {
  239. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  240. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  241. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  242. }
  243. /*FI*/}
  244. /*FI*/}
  245. else {
  246. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  247. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  248. }
  249. /*FI*/}
  250. /*FI*/}
  251. void rT154add_into(T154 *C,T0 * a1){
  252. T0 * _fn=NULL;
  253. int _i=0;
  254. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  255. _i=1;
  256. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  257. _fn=rT128item((T128*)(C)->_names,_i);
  258. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  259. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  260. /*UT*/(T45*)oRBC27eh;
  261. rT45add_position(XrT67start_position(_fn));
  262. /*UT*/(T45*)oRBC27eh;
  263. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  264. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  265. /*UT*/(T45*)oRBC27eh;
  266. rT45append(XrT67to_string(_fn));
  267. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  268. }
  269. else {
  270. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  271. }
  272. /*FI*/_i=(_i)+(1);
  273. }
  274. }
  275. T0 * rT154try_to_undefine(T154 *C,T0 * a1,T0 * a2){
  276. T0 * R=NULL;
  277. /*IF*/if (XrT67is_frozen(a1)) {
  278. /*UT*/(T45*)oRBC27eh;
  279. rT45add_position(rT154start_position(C));
  280. rT154error(XrT67start_position(a1),(T0 *)ms482);
  281. rT154fe_undefine(a1,a2);
  282. }
  283. else {
  284. R=rT154try_to_undefine_aux(C,a1,a2);
  285. /*IF*/if (((int)R)) {
  286. XrT203set_clients(R,(C)->_clients);
  287. }
  288. else {
  289. rT154fe_undefine(a1,a2);
  290. }
  291. /*FI*/}
  292. /*FI*/return R;
  293. }
  294. T0 * rT154try_to_undefine_aux(T154 *C,T0 * a1,T0 * a2){
  295. T0 * R=NULL;
  296. /*UT*/(T45*)oRBC27eh;
  297. rT45add_position(rT154start_position(C));
  298. rT154error(XrT67start_position(a1),(T0 *)ms1518);
  299. rT154fe_undefine(a1,a2);
  300. return R;
  301. }
  302. int rT154can_hide(T154 *C,T0 * a1,T0 * a2){
  303. int R=0;
  304. int _ne=0;
  305. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  306. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  307. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  308. /*UT*/(T45*)oRBC27eh;
  309. rT45add_position(XrT62start_position(a1));
  310. rT154error(rT154start_position(C),(T0 *)ms501);
  311. }
  312. /*FI*/}
  313. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  314. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  315. /*UT*/(T45*)oRBC27eh;
  316. rT45add_position(XrT62start_position(a1));
  317. rT154error(rT154start_position(C),(T0 *)ms502);
  318. }
  319.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  320. /*UT*/(T45*)oRBC27eh;
  321. rT45add_position(XrT62start_position(a1));
  322. rT154error(rT154start_position(C),(T0 *)ms503);
  323. }
  324. /*FI*/}
  325. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  326. /*IF*/if (((int)(C)->_result_type)) {
  327. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  328. /*UT*/(T45*)oRBC27eh;
  329. rT45append((T0 *)ms504);
  330. /*UT*/(T45*)oRBC27eh;
  331. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  332. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  333. }
  334. /*FI*/}
  335. /*FI*/}
  336. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  337. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  338. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  339. /*UT*/(T45*)oRBC27eh;
  340. rT45add_position(XrT62start_position(a1));
  341. /*UT*/(T45*)oRBC27eh;
  342. rT45add_position(rT154start_position(C));
  343. /*UT*/(T45*)oRBC27eh;
  344. rT45append((T0 *)ms506);
  345. /*UT*/(T45*)oRBC27eh;
  346. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  347. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  348. }
  349. /*FI*/}
  350. /*FI*/}
  351. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  352. return R;
  353. }
  354. T0 * rT154base_class_name(T154 *C){
  355. T0 * R=NULL;
  356. R=((T50*)(C)->_base_class)->_base_class_name;
  357. return R;
  358. }
  359. void rT154copy(T154 *C,T0 * a1){
  360. /*IF*//*AF*//*AE*/
  361. memcpy(C,a1,s[C->id]);
  362. /*FI*/}
  363. T0 * rT154value(T154 *C,int a1){
  364. T0 * R=NULL;
  365. R=(C)->_value_mem;
  366. return R;
  367. }
  368. void rT154make_e_feature(T154 *C,T0 * a1,T0 * a2){
  369. C->_names=a1;
  370. C->_result_type=a2;
  371. }
  372. void rT154make(T154 *C,T0 * a1,T0 * a2,T0 * a3){
  373. rT154make_e_feature(C,a1,a2);
  374. C->_value_mem=a3;
  375. }
  376. T0 * rT155first_name(T155 *C){
  377. T0 * R=NULL;
  378. R=rT128item((T128*)(C)->_names,1);
  379. return R;
  380. }
  381. void rT155fatal_error(/*C*/T0* a1){
  382. rT45fatal_error((T45*)oRBC27eh,a1);
  383. }
  384. T0 * rT155to_run_feature(T155 *C,T0 * a1,T0 * a2){
  385. T0 * R=NULL;
  386. T0 * _rc=NULL;
  387. _rc=XrT58run_class(a1);
  388. R=rT260at((T260*)_rc,a2);
  389. if ((int)R) switch (((T0 *)R)->id) {
  390. case 277: 
  391. break;
  392. default:
  393. R = NULL;
  394. };/*IF*/if (!(R)) {
  395. {T277 *n=((T277*)new(277));
  396. rT277make(n,a1,a2,(T0 *)C);
  397. R=(T0 *)n;}
  398. }
  399. /*FI*/return R;
  400. }
  401. void rT155error(/*C*/T0 * a1,T0* a2){
  402. /*UT*/(T45*)oRBC27eh;
  403. rT45add_position(a1);
  404. rT45error((T45*)oRBC27eh,a2);
  405. }
  406. void rT155fe_undefine(/*C*/T0 * a1,T0 * a2){
  407. /*UT*/(T45*)oRBC27eh;
  408. rT45append((T0 *)ms483);
  409. /*UT*/(T45*)oRBC27eh;
  410. rT45append(XrT67to_string(a1));
  411. /*UT*/(T45*)oRBC27eh;
  412. rT45append((T0 *)ms484);
  413. /*UT*/(T45*)oRBC27eh;
  414. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  415. rT155fatal_error((T0 *)ms485);
  416. }
  417. int rT155is_merge_with(T155 *C,T0 * a1,T0 * a2){
  418. int R=0;
  419. int _ne=0;
  420. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  421. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  422. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  423. /*UT*/(T45*)oRBC27eh;
  424. rT45add_position(XrT62start_position(a1));
  425. rT155error(rT155start_position(C),(T0 *)ms488);
  426. }
  427. /*FI*/}
  428. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  429. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  430. /*UT*/(T45*)oRBC27eh;
  431. rT45add_position(XrT62start_position(a1));
  432. rT155error(rT155start_position(C),(T0 *)ms489);
  433. }
  434.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  435. /*UT*/(T45*)oRBC27eh;
  436. rT45add_position(XrT62start_position(a1));
  437. rT155error(rT155start_position(C),(T0 *)ms490);
  438. }
  439. /*FI*/}
  440. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  441. /*IF*/if (((int)(C)->_result_type)) {
  442. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  443. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  444. }
  445. /*FI*/}
  446. /*FI*/}
  447. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  448. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  449. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  450. /*UT*/(T45*)oRBC27eh;
  451. rT45add_position(XrT62start_position(a1));
  452. rT155error(rT155start_position(C),(T0 *)ms494);
  453. }
  454. /*FI*/}
  455. /*FI*/}
  456. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  457. return R;
  458. }
  459. T0 * rT155start_position(T155 *C){
  460. T0 * R=NULL;
  461. R=XrT67start_position(rT155first_name(C));
  462. return R;
  463. }
  464. void rT155collect_for(/*C*/int a1){
  465. /*IF*/if ((a1)==(1001)) {
  466. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  467. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  468. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  469. }
  470. /*FI*/}
  471. /*FI*/}
  472. else {
  473. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  474. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  475. }
  476. /*FI*/}
  477. /*FI*/}
  478. void rT155add_into(T155 *C,T0 * a1){
  479. T0 * _fn=NULL;
  480. int _i=0;
  481. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  482. _i=1;
  483. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  484. _fn=rT128item((T128*)(C)->_names,_i);
  485. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  486. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  487. /*UT*/(T45*)oRBC27eh;
  488. rT45add_position(XrT67start_position(_fn));
  489. /*UT*/(T45*)oRBC27eh;
  490. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  491. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  492. /*UT*/(T45*)oRBC27eh;
  493. rT45append(XrT67to_string(_fn));
  494. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  495. }
  496. else {
  497. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  498. }
  499. /*FI*/_i=(_i)+(1);
  500. }
  501. }
  502. T0 * rT155try_to_undefine(T155 *C,T0 * a1,T0 * a2){
  503. T0 * R=NULL;
  504. /*IF*/if (XrT67is_frozen(a1)) {
  505. /*UT*/(T45*)oRBC27eh;
  506. rT45add_position(rT155start_position(C));
  507. rT155error(XrT67start_position(a1),(T0 *)ms482);
  508. rT155fe_undefine(a1,a2);
  509. }
  510. else {
  511. R=rT155try_to_undefine_aux(C,a1,a2);
  512. /*IF*/if (((int)R)) {
  513. XrT203set_clients(R,(C)->_clients);
  514. }
  515. else {
  516. rT155fe_undefine(a1,a2);
  517. }
  518. /*FI*/}
  519. /*FI*/return R;
  520. }
  521. T0 * rT155try_to_undefine_aux(T155 *C,T0 * a1,T0 * a2){
  522. T0 * R=NULL;
  523. /*UT*/(T45*)oRBC27eh;
  524. rT45add_position(rT155start_position(C));
  525. rT155error(XrT67start_position(a1),(T0 *)ms1518);
  526. rT155fe_undefine(a1,a2);
  527. return R;
  528. }
  529. int rT155can_hide(T155 *C,T0 * a1,T0 * a2){
  530. int R=0;
  531. int _ne=0;
  532. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  533. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  534. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  535. /*UT*/(T45*)oRBC27eh;
  536. rT45add_position(XrT62start_position(a1));
  537. rT155error(rT155start_position(C),(T0 *)ms501);
  538. }
  539. /*FI*/}
  540. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  541. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  542. /*UT*/(T45*)oRBC27eh;
  543. rT45add_position(XrT62start_position(a1));
  544. rT155error(rT155start_position(C),(T0 *)ms502);
  545. }
  546.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  547. /*UT*/(T45*)oRBC27eh;
  548. rT45add_position(XrT62start_position(a1));
  549. rT155error(rT155start_position(C),(T0 *)ms503);
  550. }
  551. /*FI*/}
  552. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  553. /*IF*/if (((int)(C)->_result_type)) {
  554. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  555. /*UT*/(T45*)oRBC27eh;
  556. rT45append((T0 *)ms504);
  557. /*UT*/(T45*)oRBC27eh;
  558. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  559. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  560. }
  561. /*FI*/}
  562. /*FI*/}
  563. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  564. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  565. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  566. /*UT*/(T45*)oRBC27eh;
  567. rT45add_position(XrT62start_position(a1));
  568. /*UT*/(T45*)oRBC27eh;
  569. rT45add_position(rT155start_position(C));
  570. /*UT*/(T45*)oRBC27eh;
  571. rT45append((T0 *)ms506);
  572. /*UT*/(T45*)oRBC27eh;
  573. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  574. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  575. }
  576. /*FI*/}
  577. /*FI*/}
  578. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  579. return R;
  580. }
  581. T0 * rT155base_class_name(T155 *C){
  582. T0 * R=NULL;
  583. R=((T50*)(C)->_base_class)->_base_class_name;
  584. return R;
  585. }
  586. void rT155copy(T155 *C,T0 * a1){
  587. /*IF*//*AF*//*AE*/
  588. memcpy(C,a1,s[C->id]);
  589. /*FI*/}
  590. T0 * rT155value(T155 *C,int a1){
  591. T0 * R=NULL;
  592. R=(C)->_value_mem;
  593. return R;
  594. }
  595. void rT155make_e_feature(T155 *C,T0 * a1,T0 * a2){
  596. C->_names=a1;
  597. C->_result_type=a2;
  598. }
  599. void rT155make(T155 *C,T0 * a1,T0 * a2,T0 * a3){
  600. rT155make_e_feature(C,a1,a2);
  601. C->_value_mem=a3;
  602. }
  603. int rT157use_current(T157 *C){
  604. int R=0;
  605. int _i=0;
  606. /*IF*/if (((int)(C)->_list)) {
  607. _i=((T158*)(C)->_list)->_upper;
  608. while (!((R)||((_i)==(0)))) {
  609. R=rT64use_current((T64*)rT158item((T158*)(C)->_list,_i));
  610. _i=(_i)-(1);
  611. }
  612. }
  613. /*FI*/return R;
  614. }
  615. void rT157add_into(T157 *C,T0* a1){
  616. T0 * _a=NULL;
  617. int _i=0;
  618. /*IF*/if (((int)(C)->_list)) {
  619. _i=1;
  620. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  621. _a=rT158item((T158*)(C)->_list,_i);
  622. /*IF*/if (!(rT158fast_has((T158*)a1,_a))) {
  623. rT158add_last((T158*)a1,_a);
  624. }
  625. /*FI*/_i=(_i)+(1);
  626. }
  627. }
  628. /*FI*/}
  629. void rT157from_runnable(T157 *C,T0* a1){
  630. C->_list=a1;
  631. C->_current_type=((T64*)rT158item((T158*)(C)->_list,1))->_current_type;
  632. }
  633. void rT157compile_to_c(T157 *C){
  634. int _i=0;
  635. /*(IRF3*/(((T40*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms1387/*)*/);
  636. /*)*//*IF*/if (((int)(C)->_list)) {
  637. rT40put_string((T40*)oRBC27cpp,(T0 *)ms775);
  638. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1387/*)*/);
  639. rT40put_string((T40*)oRBC27cpp,(T0 *)ms776);
  640. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1387/*)*/);
  641. rT40put_string((T40*)oRBC27cpp,(T0 *)ms777);
  642. _i=1;
  643. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  644. rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
  645. _i=(_i)+(1);
  646. }
  647. rT40put_string((T40*)oRBC27cpp,(T0 *)ms783);
  648. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1387/*)*/);
  649. rT40put_string((T40*)oRBC27cpp,(T0 *)ms784);
  650. }
  651. /*FI*/}
  652. void rT157compile_to_c_old(T157 *C){
  653. int _i=0;
  654. /*IF*/if (((int)(C)->_list)) {
  655. _i=((T158*)(C)->_list)->_lower;
  656. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  657. rT64compile_to_c_old((T64*)rT158item((T158*)(C)->_list,_i));
  658. _i=(_i)+(1);
  659. }
  660. }
  661. /*FI*/}
  662. void rT157copy(T157 *C,T0 * a1){
  663. /*IF*//*AF*//*AE*/
  664. memcpy(C,a1,s[C->id]);
  665. /*FI*/}
  666. void rT157make(T157 *C,T0 * a1,T0 * a2,T0* a3){
  667. C->_start_position=a1;
  668. C->_header_comment=a2;
  669. C->_list=a3;
  670. }
  671. int rT137use_current(T137 *C){
  672. int R=0;
  673. int _i=0;
  674. /*IF*/if (((int)(C)->_list)) {
  675. _i=((T158*)(C)->_list)->_upper;
  676. while (!((R)||((_i)==(0)))) {
  677. R=rT64use_current((T64*)rT158item((T158*)(C)->_list,_i));
  678. _i=(_i)-(1);
  679. }
  680. }
  681. /*FI*/return R;
  682. }
  683. void rT137from_runnable(T137 *C,T0* a1){
  684. C->_list=a1;
  685. C->_current_type=((T64*)rT158item((T158*)(C)->_list,1))->_current_type;
  686. }
  687. void rT137compile_to_c(T137 *C){
  688. int _i=0;
  689. /*(IRF3*/(((T40*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms1380/*)*/);
  690. /*)*//*IF*/if (((int)(C)->_list)) {
  691. rT40put_string((T40*)oRBC27cpp,(T0 *)ms775);
  692. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1380/*)*/);
  693. rT40put_string((T40*)oRBC27cpp,(T0 *)ms776);
  694. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1380/*)*/);
  695. rT40put_string((T40*)oRBC27cpp,(T0 *)ms777);
  696. _i=1;
  697. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  698. rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
  699. _i=(_i)+(1);
  700. }
  701. rT40put_string((T40*)oRBC27cpp,(T0 *)ms783);
  702. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1380/*)*/);
  703. rT40put_string((T40*)oRBC27cpp,(T0 *)ms784);
  704. }
  705. /*FI*/}
  706. void rT137copy(T137 *C,T0 * a1){
  707. /*IF*//*AF*//*AE*/
  708. memcpy(C,a1,s[C->id]);
  709. /*FI*/}
  710. void rT137make(T137 *C,T0 * a1,T0 * a2,T0* a3){
  711. C->_start_position=a1;
  712. C->_header_comment=a2;
  713. C->_list=a3;
  714. }
  715. T0 * rT235current_type(T235 *C){
  716. T0 * R=NULL;
  717. /*IF*/if (((int)(C)->_run_compound)) {
  718. R=((T140*)(C)->_run_compound)->_current_type;
  719. }
  720. /*FI*/return R;
  721. }
  722. T0 * rT235to_runnable(T235 *C,T0 * a1){
  723. T0 * R=NULL;
  724. int _loop_check=0;
  725. T0 * _lb=NULL;
  726. T0 * _ue=NULL;
  727. T0 * _vc=NULL;
  728. T0 * _ic=NULL;
  729. T0 * _i=NULL;
  730. _loop_check=rT44loop_check((T44*)oRBC27eiffel_run_control);
  731. /*IF*/if (!((C)->_run_compound)) {
  732. C->_run_compound=a1;
  733. /*IF*/if (((int)(C)->_initialize)) {
  734. _i=rT140to_runnable((T140*)(C)->_initialize,rT235current_type(C));
  735. /*IF*/if (((int)_i)) {
  736. C->_initialize=_i;
  737. }
  738. else {
  739. rT235error((C)->_start_position,(T0 *)ms1237);
  740. }
  741. /*FI*/}
  742. /*FI*//*IF*/if ((_loop_check)&&(((int)(C)->_invariant_clause))) {
  743. _ic=rT236to_runnable((T236*)(C)->_invariant_clause,((T140*)a1)->_current_type);
  744. /*IF*/if (((int)_ic)) {
  745. C->_invariant_clause=_ic;
  746. }
  747. else {
  748. rT235error((C)->_start_position,(T0 *)ms1238);
  749. }
  750. /*FI*/}
  751. /*FI*//*IF*/if ((_loop_check)&&(((int)(C)->_variant_clause))) {
  752. _vc=XrT237to_runnable((C)->_variant_clause,rT235current_type(C));
  753. /*IF*/if (((int)_vc)) {
  754. C->_variant_clause=_vc;
  755. }
  756. else {
  757. rT235error((C)->_start_position,(T0 *)ms1239);
  758. }
  759. /*FI*/}
  760. /*FI*/_ue=XrT68to_runnable((C)->_until_expression,rT235current_type(C));
  761. /*IF*/if (((int)_ue)) {
  762. C->_until_expression=_ue;
  763. }
  764. else {
  765. rT235error((C)->_start_position,(T0 *)ms1240);
  766. }
  767. /*FI*//*IF*/if (((int)(C)->_loop_body)) {
  768. _lb=rT140to_runnable((T140*)(C)->_loop_body,rT235current_type(C));
  769. /*IF*/if (((int)_lb)) {
  770. C->_loop_body=_lb;
  771. }
  772. else {
  773. rT235error((C)->_start_position,(T0 *)ms1241);
  774. }
  775. /*FI*/}
  776. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  777. R=(T0 *)C;
  778. }
  779. /*FI*/}
  780. else {
  781. {T235 *n=((T235*)new(235));
  782. rT235make(n,(C)->_start_position,(C)->_initialize,(C)->_invariant_clause,(C)->_variant_clause,(C)->_until_expression,(C)->_loop_body);
  783. R=(T0 *)n;}
  784. R=rT235to_runnable((T235*)R,a1);
  785. }
  786. /*FI*/return R;
  787. }
  788. void rT235error(/*C*/T0 * a1,T0* a2){
  789. /*UT*/(T45*)oRBC27eh;
  790. rT45add_position(a1);
  791. rT45error((T45*)oRBC27eh,a2);
  792. }
  793. T0 * rT235add_comment(T235 *C,T0 * a1){
  794. T0 * R=NULL;
  795. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  796. R=(T0 *)C;
  797. }
  798.  else {/*AT*//*IF*/if ((rT59count((T59*)a1))==(1)) {
  799. R=(T0 *)C;
  800. }
  801. else {
  802. {T216 *n=((T216*)new(216));
  803. rT216make(n,(T0 *)C,a1);
  804. R=(T0 *)n;}}
  805. /*FI*/}
  806. /*FI*/return R;
  807. }
  808. int rT235use_current(T235 *C){
  809. int R=0;
  810. int _loop_check=0;
  811. _loop_check=rT44loop_check((T44*)oRBC27eiffel_run_control);
  812. /*IF*/if ((_loop_check)&&(((int)(C)->_variant_clause))) {
  813. R=(R)||(XrT237use_current((C)->_variant_clause));
  814. }
  815. /*FI*//*IF*/if (((int)(C)->_initialize)) {
  816. R=(R)||(rT140use_current((T140*)(C)->_initialize));
  817. }
  818. /*FI*/R=(R)||(XrT68use_current((C)->_until_expression));
  819. /*IF*/if ((_loop_check)&&(((int)(C)->_invariant_clause))) {
  820. R=(R)||(rT236use_current((T236*)(C)->_invariant_clause));
  821. }
  822. /*FI*//*IF*/if (((int)(C)->_loop_body)) {
  823. R=(R)||(rT140use_current((T140*)(C)->_loop_body));
  824. }
  825. /*FI*/return R;
  826. }
  827. void rT235compile_to_c(T235 *C){
  828. int _invariant_flag=0;
  829. int _variant_flag=0;
  830. int _loop_check=0;
  831. _loop_check=rT44loop_check((T44*)oRBC27eiffel_run_control);
  832. /*IF*/if ((_loop_check)&&(((int)(C)->_variant_clause))) {
  833. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1304);
  834. _variant_flag=1;
  835. }
  836. /*FI*//*IF*/if (((int)(C)->_initialize)) {
  837. rT140compile_to_c((T140*)(C)->_initialize);
  838. }
  839. /*FI*//*IF*/if ((_loop_check)&&(((int)(C)->_invariant_clause))) {
  840. rT236compile_to_c((T236*)(C)->_invariant_clause);
  841. _invariant_flag=1;
  842. }
  843. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1306);
  844. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  845. rT40trace_boolean_expression((T40*)oRBC27cpp,(C)->_until_expression);
  846. }
  847. else {
  848. XrT68compile_to_c((C)->_until_expression);
  849. }
  850. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1307);
  851. /*IF*/if (_variant_flag) {
  852. rT40variant_check((T40*)oRBC27cpp,XrT237expression((C)->_variant_clause));
  853. }
  854. /*FI*//*IF*/if (((int)(C)->_loop_body)) {
  855. rT140compile_to_c((T140*)(C)->_loop_body);
  856. }
  857. /*FI*//*IF*/if (_invariant_flag) {
  858. rT236compile_to_c((T236*)(C)->_invariant_clause);
  859. }
  860. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1310);
  861. /*IF*/if (_variant_flag) {
  862. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1311);
  863. }
  864. /*FI*/}
  865. void rT235copy(T235 *C,T0 * a1){
  866. /*IF*//*AF*//*AE*/
  867. memcpy(C,a1,s[C->id]);
  868. /*FI*/}
  869. void rT235make(T235 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6){
  870. C->_start_position=a1;
  871. C->_initialize=a2;
  872. C->_invariant_clause=a3;
  873. C->_variant_clause=a4;
  874. C->_until_expression=a5;
  875. C->_loop_body=a6;
  876. }
  877. T0 * rT225current_type(T225 *C){
  878. T0 * R=NULL;
  879. /*IF*/if (((int)(C)->_run_compound)) {
  880. R=((T140*)(C)->_run_compound)->_current_type;
  881. }
  882. /*FI*/return R;
  883. }
  884. T0 * rT225to_runnable(T225 *C,T0 * a1){
  885. T0 * R=NULL;
  886. T0 * _wl=NULL;
  887. T0 * _te=NULL;
  888. T0 * _e=NULL;
  889. /*IF*/if (!((C)->_run_compound)) {
  890. C->_run_compound=a1;
  891. _e=XrT68to_runnable((C)->_expression,rT225current_type(C));
  892. /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  893. C->_expression=_e;
  894. _te=XrT58run_type(XrT68result_type(_e));
  895. }
  896. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  897. /*IF*/if (XrT58is_character(_te)) {
  898. /*IF*/if (((int)(C)->_when_list)) {
  899. C->_when_list=rT231to_runnable_character((T231*)(C)->_when_list,(T0 *)C);
  900. /*IF*/if (!((C)->_when_list)) {
  901. rT225error((C)->_start_position,(T0 *)ms1233);
  902. }
  903. /*FI*/}
  904. /*FI*/}
  905.  else if (XrT58is_integer(_te)) {
  906. /*IF*/if (((int)(C)->_when_list)) {
  907. C->_when_list=rT231to_runnable_integer((T231*)(C)->_when_list,(T0 *)C);
  908. /*IF*/if (!((C)->_when_list)) {
  909. rT225error((C)->_start_position,(T0 *)ms1233);
  910. }
  911. /*FI*/}
  912. /*FI*/}
  913. else {
  914. /*UT*/(T45*)oRBC27eh;
  915. rT45append((T0 *)ms1235);
  916. /*UT*/(T45*)oRBC27eh;
  917. rT45add_type(_te,(T0 *)ms1236);
  918. /*UT*/(T45*)oRBC27eh;
  919. rT45add_position((C)->_start_position);
  920. rT45print_as_error((T45*)oRBC27eh);
  921. }
  922. /*FI*/}
  923. /*FI*//*IF*/if (((int)(C)->_else_compound)) {
  924. C->_else_compound=rT140to_runnable((T140*)(C)->_else_compound,rT225current_type(C));
  925. }
  926. /*FI*/R=(T0 *)C;
  927. }
  928. else {
  929. R=rT225clone(C,(T0 *)C);
  930. {T231 *n=((T231*)new(231));
  931. rT231from_when_list(n,(C)->_when_list);
  932. _wl=(T0 *)n;}
  933. /*(IRF3*/(((T225*)R)->_when_list)=(_wl);
  934. /*)*//*(IRF3*/(((T225*)R)->_run_compound)=(NULL);
  935. /*)*/R=rT225to_runnable((T225*)R,a1);
  936. }
  937. /*FI*/return R;
  938. }
  939. void rT225error(/*C*/T0 * a1,T0* a2){
  940. /*UT*/(T45*)oRBC27eh;
  941. rT45add_position(a1);
  942. rT45error((T45*)oRBC27eh,a2);
  943. }
  944. T0 * rT225add_comment(T225 *C,T0 * a1){
  945. T0 * R=NULL;
  946. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  947. R=(T0 *)C;
  948. }
  949.  else {/*AT*//*IF*/if ((rT59count((T59*)a1))==(1)) {
  950. R=(T0 *)C;
  951. }
  952. else {
  953. {T216 *n=((T216*)new(216));
  954. rT216make(n,(T0 *)C,a1);
  955. R=(T0 *)n;}}
  956. /*FI*/}
  957. /*FI*/return R;
  958. }
  959. int rT225use_current(T225 *C){
  960. int R=0;
  961. R=(R)||(XrT68use_current((C)->_expression));
  962. /*IF*/if (((int)(C)->_when_list)) {
  963. R=(R)||(rT231use_current((T231*)(C)->_when_list));
  964. }
  965. /*FI*//*IF*/if (((int)(C)->_else_compound)) {
  966. R=(R)||(rT140use_current((T140*)(C)->_else_compound));
  967. }
  968. /*FI*/return R;
  969. }
  970. void rT225set_else_compound(T225 *C,T0 * a1,T0 * a2){
  971. C->_else_position=a1;
  972. C->_else_compound=a2;
  973. }
  974. T0* rT225clone(T225 *C,T0* a1){
  975. T0* R=NULL;
  976. /*IF*/if (((int)a1)) {
  977. R=(T0 *)new(a1->id);
  978. AF_1
  979. XrT28copy(R,a1);
  980. AF_0
  981. }
  982. /*FI*/return R;
  983. }
  984. void rT225compile_to_c(T225 *C){
  985. int _go_out_inspect=0;
  986. rT40inspect_incr((T40*)oRBC27cpp);
  987. _go_out_inspect=rT40new_goto((T40*)oRBC27cpp);
  988. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1285);
  989. rT40put_inspect((T40*)oRBC27cpp);
  990. rT40put_character((T40*)oRBC27cpp,'\75');
  991. XrT68compile_to_c((C)->_expression);
  992. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1287);
  993. /*IF*/if (((int)(C)->_when_list)) {
  994. rT231compile_to_c((T231*)(C)->_when_list,_go_out_inspect);
  995. }
  996. /*FI*//*IF*/if (!((C)->_else_position)) {
  997. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  998. rT40put_error1((T40*)oRBC27cpp,(T0 *)ms1302,(C)->_start_position);
  999. }
  1000. /*FI*/}
  1001. else {
  1002. /*IF*/if (((int)(C)->_else_compound)) {
  1003. rT140compile_to_c((T140*)(C)->_else_compound);
  1004. }
  1005. /*FI*/}
  1006. /*FI*/rT40put_goto_label((T40*)oRBC27cpp,_go_out_inspect);
  1007. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1303);
  1008. rT40inspect_decr((T40*)oRBC27cpp);
  1009. }
  1010. void rT225copy(T225 *C,T0 * a1){
  1011. /*IF*//*AF*//*AE*/
  1012. memcpy(C,a1,s[C->id]);
  1013. /*FI*/}
  1014. int rT225includes(T225 *C,int a1){
  1015. int R=0;
  1016. R=rT231includes_integer((T231*)(C)->_when_list,a1);
  1017. return R;
  1018. }
  1019. void rT225make(T225 *C,T0 * a1,T0 * a2){
  1020. C->_start_position=a1;
  1021. C->_expression=a2;
  1022. }
  1023. void rT225add_when(T225 *C,T0 * a1){
  1024. /*IF*/if (!((C)->_when_list)) {
  1025. {T231 *n=((T231*)new(231));
  1026. /*(IRF3*/((n)->_list)=(ma(232,0,1,a1));
  1027. /*)*/C->_when_list=(T0 *)n;}
  1028. }
  1029. else {
  1030. rT231add_last((T231*)(C)->_when_list,a1);
  1031. }
  1032. /*FI*/}
  1033. int rT171static_value(T171 *C){
  1034. int R=0;
  1035. R=(C)->_static_value_mem;
  1036. return R;
  1037. }
  1038. T0 * rT171to_runnable(T171 *C,T0 * a1){
  1039. T0 * R=NULL;
  1040. /*IF*/if (!((C)->_current_type)) {
  1041. C->_current_type=a1;
  1042. C->_result_type=XrT261result_type(rT52top_rf((T52*)oRBC27small_eiffel));
  1043. R=(T0 *)C;
  1044. }
  1045. else {
  1046. {T171 *n=((T171*)new(171));
  1047. rT171make(n,(C)->_start_position);
  1048. R=(T0 *)n;}
  1049. R=rT171to_runnable((T171*)R,a1);
  1050. }
  1051. /*FI*/return R;
  1052. }
  1053. void rT171error(/*C*/T0 * a1,T0* a2){
  1054. /*UT*/(T45*)oRBC27eh;
  1055. rT45add_position(a1);
  1056. rT45error((T45*)oRBC27eh,a2);
  1057. }
  1058. T0 * rT171add_comment(T171 *C,T0 * a1){
  1059. T0 * R=NULL;
  1060. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1061. R=(T0 *)C;
  1062. }
  1063. else {
  1064. {T220 *n=((T220*)new(220));
  1065. rT220make(n,(T0 *)C,a1);
  1066. R=(T0 *)n;}}
  1067. /*FI*/return R;
  1068. }
  1069. T0* rT171to_key(T171 *C){
  1070. T0* R=NULL;
  1071. R=(C)->_to_string;
  1072. return R;
  1073. }
  1074. int rT171to_integer(T171 *C){
  1075. int R=0;
  1076. rT171error((C)->_start_position,(T0 *)ms175);
  1077. return R;
  1078. }
  1079. T0 * rT171written_in(T171 *C){
  1080. T0 * R=NULL;
  1081. T0 * _sp=NULL;
  1082. _sp=(C)->_start_position;
  1083. /*IF*/if (((int)_sp)) {
  1084. R=((T46*)_sp)->_base_class_name;
  1085. }
  1086. /*FI*/return R;
  1087. }
  1088. void rT171copy(T171 *C,T0 * a1){
  1089. /*IF*//*AF*//*AE*/
  1090. memcpy(C,a1,s[C->id]);
  1091. /*FI*/}
  1092. int rT171is_a(T171 *C,T0 * a1){
  1093. int R=0;
  1094. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1095. /*IF*/if (!(R)) {
  1096. /*UT*/(T45*)oRBC27eh;
  1097. rT45add_position((C)->_start_position);
  1098. rT171error(XrT68start_position(a1),(T0 *)ms1261);
  1099. }
  1100. /*FI*/return R;
  1101. }
  1102. void rT171make(T171 *C,T0 * a1){
  1103. C->_to_string=(T0 *)ms293;
  1104. C->_start_position=a1;
  1105. }
  1106. int rT89static_value(T89 *C){
  1107. int R=0;
  1108. R=(C)->_static_value_mem;
  1109. return R;
  1110. }
  1111. T0 * rT89to_runnable(T89 *C,T0 * a1){
  1112. T0 * R=NULL;
  1113. /*IF*/if (!((C)->_current_type)) {
  1114. C->_current_type=a1;
  1115. R=(T0 *)C;
  1116. }
  1117.  else if (((T0 *)(C)->_current_type)==((T0 *)a1)) {
  1118. R=(T0 *)C;
  1119. }
  1120. else {
  1121. {T89 *n=((T89*)new(89));
  1122. rT89make(n,(C)->_start_position,(C)->_is_written);
  1123. R=(T0 *)n;}
  1124. /*(IRF3*/(((T89*)R)->_current_type)=(a1);
  1125. /*)*/}
  1126. /*FI*/return R;
  1127. }
  1128. void rT89error(/*C*/T0 * a1,T0* a2){
  1129. /*UT*/(T45*)oRBC27eh;
  1130. rT45add_position(a1);
  1131. rT45error((T45*)oRBC27eh,a2);
  1132. }
  1133. T0 * rT89add_comment(T89 *C,T0 * a1){
  1134. T0 * R=NULL;
  1135. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1136. R=(T0 *)C;
  1137. }
  1138. else {
  1139. {T220 *n=((T220*)new(220));
  1140. rT220make(n,(T0 *)C,a1);
  1141. R=(T0 *)n;}}
  1142. /*FI*/return R;
  1143. }
  1144. T0 * rT89result_type(T89 *C){
  1145. T0 * R=NULL;
  1146. R=(C)->_current_type;
  1147. return R;
  1148. }
  1149. T0* rT89to_key(T89 *C){
  1150. T0* R=NULL;
  1151. R=(C)->_to_string;
  1152. return R;
  1153. }
  1154. int rT89to_integer(T89 *C){
  1155. int R=0;
  1156. rT89error((C)->_start_position,(T0 *)ms175);
  1157. return R;
  1158. }
  1159. T0 * rT89written_in(T89 *C){
  1160. T0 * R=NULL;
  1161. T0 * _sp=NULL;
  1162. _sp=(C)->_start_position;
  1163. /*IF*/if (((int)_sp)) {
  1164. R=((T46*)_sp)->_base_class_name;
  1165. }
  1166. /*FI*/return R;
  1167. }
  1168. void rT89copy(T89 *C,T0 * a1){
  1169. /*IF*//*AF*//*AE*/
  1170. memcpy(C,a1,s[C->id]);
  1171. /*FI*/}
  1172. int rT89is_a(T89 *C,T0 * a1){
  1173. int R=0;
  1174. R=XrT58is_a(XrT58run_type(rT89result_type(C)),XrT58run_type(XrT68result_type(a1)));
  1175. /*IF*/if (!(R)) {
  1176. /*UT*/(T45*)oRBC27eh;
  1177. rT45add_position((C)->_start_position);
  1178. rT89error(XrT68start_position(a1),(T0 *)ms1261);
  1179. }
  1180. /*FI*/return R;
  1181. }
  1182. void rT89make(T89 *C,T0 * a1,int a2){
  1183. C->_start_position=a1;
  1184. C->_is_written=a2;
  1185. }
  1186. T0 * rT122clients_for(T122 *C,T0 * a1){
  1187. T0 * R=NULL;
  1188. T0 * _ei=NULL;
  1189. int _i=0;
  1190. _i=1;
  1191. while (!((((int)R))||((_i)>(((T127*)(C)->_items)->_upper)))) {
  1192. _ei=rT127item((T127*)(C)->_items,_i);
  1193. /*IF*/if (rT124affect((T124*)_ei,a1)) {
  1194. R=((T124*)_ei)->_clients;
  1195. }
  1196. else {
  1197. _i=(_i)+(1);
  1198. }
  1199. /*FI*/}
  1200. return R;
  1201. }
  1202. void rT122copy(T122 *C,T0 * a1){
  1203. /*IF*//*AF*//*AE*/
  1204. memcpy(C,a1,s[C->id]);
  1205. /*FI*/}
  1206. void rT122make(T122 *C,T0 * a1,T0* a2){
  1207. C->_start_position=a1;
  1208. C->_items=a2;
  1209. }
  1210. int rT124for_all(T124 *C){
  1211. int R=0;
  1212. R=!((C)->_list);
  1213. return R;
  1214. }
  1215. int rT124affect(T124 *C,T0 * a1){
  1216. int R=0;
  1217. /*IF*/if (rT124for_all(C)) {
  1218. R=1;
  1219. }
  1220. else {
  1221. R=rT128has((T128*)(C)->_list,a1);
  1222. }
  1223. /*FI*/return R;
  1224. }
  1225. void rT124copy(T124 *C,T0 * a1){
  1226. /*IF*//*AF*//*AE*/
  1227. memcpy(C,a1,s[C->id]);
  1228. /*FI*/}
  1229. void rT124make_all(T124 *C,T0 * a1){
  1230. C->_clients=a1;
  1231. C->_list=NULL;
  1232. }
  1233. void rT124make(T124 *C,T0 * a1,T0* a2){
  1234. C->_clients=a1;
  1235. {T128 *n=((T128*)new(128));
  1236. rT128make(n,a2);
  1237. C->_list=(T0 *)n;}
  1238. }
  1239. T0 * rT224to_runnable(T224 *C,T0 * a1){
  1240. T0 * R=NULL;
  1241. /*IF*/if (!((C)->_run_compound)) {
  1242. C->_run_compound=a1;
  1243. R=(T0 *)C;
  1244. }
  1245.  else if (((T0 *)(C)->_run_compound)==((T0 *)a1)) {
  1246. R=(T0 *)C;
  1247. }
  1248. else {
  1249. {T224 *n=((T224*)new(224));
  1250. /*(IRF3*/((n)->_start_position)=((C)->_start_position);
  1251. /*)*/R=(T0 *)n;}
  1252. R=rT224to_runnable((T224*)R,a1);
  1253. }
  1254. /*FI*/return R;
  1255. }
  1256. void rT224error(/*C*/T0 * a1,T0* a2){
  1257. /*UT*/(T45*)oRBC27eh;
  1258. rT45add_position(a1);
  1259. rT45error((T45*)oRBC27eh,a2);
  1260. }
  1261. T0 * rT224add_comment(T224 *C,T0 * a1){
  1262. T0 * R=NULL;
  1263. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1264. R=(T0 *)C;
  1265. }
  1266. /*AF*/else {
  1267. {T216 *n=((T216*)new(216));
  1268. rT216make(n,(T0 *)C,a1);
  1269. R=(T0 *)n;}}
  1270. /*FI*/return R;
  1271. }
  1272. void rT224compile_to_c(T224 *C){
  1273. rT224error((C)->_start_position,(T0 *)ms1284);
  1274. }
  1275. void rT224copy(T224 *C,T0 * a1){
  1276. /*IF*//*AF*//*AE*/
  1277. memcpy(C,a1,s[C->id]);
  1278. /*FI*/}
  1279. void rT46show(T46 *C){
  1280. T0* _the_line=NULL;
  1281. T0* _str=NULL;
  1282. T0* _n=NULL;
  1283. int _nb=0;
  1284. int _c=0;
  1285. _n=((T48*)(C)->_base_class_name)->_to_string;
  1286. rT33put_string((T33*)oRBC1std_error,(T0 *)ms43);
  1287. rT33put_integer((T33*)oRBC1std_error,(C)->_line);
  1288. rT33put_string((T33*)oRBC1std_error,(T0 *)ms46);
  1289. rT33put_integer((T33*)oRBC1std_error,(C)->_column);
  1290. rT33put_string((T33*)oRBC1std_error,(T0 *)ms47);
  1291. rT33put_string((T33*)oRBC1std_error,_n);
  1292. _str=rT46path(C);
  1293. /*IF*/if (((int)_str)) {
  1294. rT33put_string((T33*)oRBC1std_error,(T0 *)ms429);
  1295. rT33put_string((T33*)oRBC1std_error,_str);
  1296. rT33put_character((T33*)oRBC1std_error,'\51');
  1297. }
  1298. /*FI*/rT33put_string((T33*)oRBC1std_error,(T0 *)ms430);
  1299. /*IF*/if ((/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/)&&(rT7is_equal((T7*)((T48*)rT51current_class_name((T51*)oRBC27eiffel_parser))->_to_string,_n))) {
  1300. _the_line=(/*UT*/(T60*)oRBC51text,
  1301. rT60item((C)->_line));
  1302. }
  1303.  else if (((int)rT46path(C))) {
  1304. rT60read((T60*)oRBC51text,((T50*)rT46base_class(C))->_path);
  1305. _the_line=(/*UT*/(T60*)oRBC51text,
  1306. rT60item((C)->_line));
  1307. }
  1308. /*FI*//*IF*/if (((int)_the_line)) {
  1309. _c=(C)->_column;
  1310. rT33put_string((T33*)oRBC1std_error,_the_line);
  1311. rT33put_new_line((T33*)oRBC1std_error);
  1312. _nb=1;
  1313. while (!((_nb)==(_c))) {
  1314. /*IF*/if ((rT7item((T7*)_the_line,_nb))==('\11')) {
  1315. rT33put_character((T33*)oRBC1std_error,'\11');
  1316. }
  1317. else {
  1318. rT33put_character((T33*)oRBC1std_error,'\40');
  1319. }
  1320. /*FI*/_nb=(_nb)+(1);
  1321. }
  1322. rT33put_string((T33*)oRBC1std_error,(T0 *)ms431);
  1323. }
  1324. else {
  1325. rT33put_string((T33*)oRBC1std_error,(T0 *)ms432);
  1326. rT33put_string((T33*)oRBC1std_error,_n);
  1327. rT33put_string((T33*)oRBC1std_error,(T0 *)ms433);
  1328. }
  1329. /*FI*/}
  1330. void rT46fatal_error(/*C*/T0* a1){
  1331. rT45fatal_error((T45*)oRBC27eh,a1);
  1332. }
  1333. T0* rT46path(T46 *C){
  1334. T0* R=NULL;
  1335. T0 * _bc=NULL;
  1336. /*IF*/if (/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/) {
  1337. /*IF*/if ((/*UT*/(T52*)oRBC27small_eiffel,
  1338. rT52is_used(((T48*)(C)->_base_class_name)->_to_string))) {
  1339. _bc=rT48base_class((T48*)(C)->_base_class_name);
  1340. }
  1341. /*FI*/}
  1342. else {
  1343. _bc=rT48base_class((T48*)(C)->_base_class_name);
  1344. }
  1345. /*FI*//*IF*/if (((int)_bc)) {
  1346. R=((T50*)_bc)->_path;
  1347. }
  1348. /*FI*/return R;
  1349. }
  1350. int rT46is_equal(T46 *C,T0 * a1){
  1351. int R=0;
  1352. R=((((((C)->_line)==(((T46*)a1)->_line))&&(((C)->_column)==(((T46*)a1)->_column)))&&(((int)(C)->_base_class_name)))&&(((int)((T46*)a1)->_base_class_name)))&&(((T0 *)((T48*)(C)->_base_class_name)->_to_string)==((T0 *)((T48*)((T46*)a1)->_base_class_name)->_to_string));
  1353. return R;
  1354. }
  1355. T0* rT46to_err_msg(T46 *C){
  1356. T0* R=NULL;
  1357. {T7 *n=((T7*)new(7));
  1358. rT7copy(n,(T0 *)ms463);
  1359. R=(T0 *)n;}
  1360. rT7append((T7*)R,rT2to_string((C)->_line));
  1361. rT7append((T7*)R,(T0 *)ms464);
  1362. rT7append((T7*)R,rT2to_string((C)->_column));
  1363. /*IF*/if (((int)(C)->_base_class_name)) {
  1364. rT7append((T7*)R,(T0 *)ms465);
  1365. rT7append((T7*)R,rT48to_err_msg((T48*)(C)->_base_class_name));
  1366. }
  1367. /*FI*/return R;
  1368. }
  1369. T0 * rT46base_class(T46 *C){
  1370. T0 * R=NULL;
  1371. /*IF*/if (/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/) {
  1372. /*IF*/if (rT7empty((T7*)((T48*)(C)->_base_class_name)->_to_string)) {
  1373. rT46fatal_error((T0 *)ms417);
  1374. }
  1375.  else if ((/*UT*/(T52*)oRBC27small_eiffel,
  1376. rT52is_used(((T48*)(C)->_base_class_name)->_to_string))) {
  1377. R=rT48base_class((T48*)(C)->_base_class_name);
  1378. }
  1379. else {
  1380. rT46fatal_error((T0 *)ms418);
  1381. }
  1382. /*FI*/}
  1383. else {
  1384. R=rT48base_class((T48*)(C)->_base_class_name);
  1385. }
  1386. /*FI*/return R;
  1387. }
  1388. void rT46copy(T46 *C,T0 * a1){
  1389. /*IF*//*AF*//*AE*/
  1390. memcpy(C,a1,s[C->id]);
  1391. /*FI*/}
  1392. void rT46with(T46 *C,int a1,int a2,T0 * a3){
  1393. C->_line=a1;
  1394. C->_column=a2;
  1395. C->_base_class_name=a3;
  1396. }
  1397. void rT46make(T46 *C,int a1,int a2){
  1398. C->_line=a1;
  1399. C->_column=a2;
  1400. C->_base_class_name=rT51current_class_name((T51*)oRBC27eiffel_parser);
  1401. }
  1402. T0*oRBC27eiffel_parser;
  1403. void rT33put_integer(T33 *C,int a1){
  1404. /*(IRF3*/(((T7*)(T0 *)ms44)->_count)=(0);
  1405. /*)*/rT2append_in(a1,(T0 *)ms44);
  1406. rT33put_string(C,(T0 *)ms44);
  1407. }
  1408. void rT33put_new_line(T33 *C){
  1409. rT33put_character(C,'\12');
  1410. }
  1411. void rT33die_with_code(T33 *C,int a1){
  1412. exit(a1);
  1413. }
  1414. void rT33put_string(T33 *C,T0* a1){
  1415. int _i=0;
  1416. _i=1;
  1417. while (!((_i)>(((T7*)a1)->_count))) {
  1418. rT33put_character(C,rT7_ix64((T7*)a1,_i));
  1419. _i=(_i)+(1);
  1420. }
  1421. }
  1422. int rT33is_connected(T33 *C){
  1423. int R=0;
  1424. R=((int)(C)->_path);
  1425. return R;
  1426. }
  1427. void rT33crash(T33 *C){
  1428. rsp();
  1429. rT33die_with_code(C,1);
  1430. }
  1431. void rT33disconnect(T33 *C){
  1432. int _err=0;
  1433. _err=fclose((C)->_output_stream);
  1434. C->_path=NULL;
  1435. C->_output_stream=stderr;
  1436. }
  1437. void rT33connect_to(T33 *C,T0* a1){
  1438. C->_mode=(T0 *)ms527;
  1439. C->_output_stream=rT33fopen(C,a1,(C)->_mode);
  1440. /*IF*/{/*AT*/C->_path=a1;
  1441. }
  1442. /*FI*/}
  1443. void * rT33fopen(T33 *C,T0* a1,T0* a2){
  1444. void * R=NULL;
  1445. rT7extend((T7*)a1,'\0');
  1446. rT7extend((T7*)a2,'\0');
  1447. R=(T0 *)fopen(((Tstring *)a1)->_storage,((Tstring *)a2)->_storage);
  1448. rT7remove_last((T7*)a1,1);
  1449. rT7remove_last((T7*)a2,1);
  1450. return R;
  1451. }
  1452. void rT33copy(T33 *C,T0 * a1){
  1453. /*IF*//*AF*//*AE*/
  1454. memcpy(C,a1,s[C->id]);
  1455. /*FI*/}
  1456. void rT33put_character(T33 *C,char a1){
  1457. char _err='\0';
  1458. _err=fputc(a1,(C)->_output_stream);
  1459. /*IF*/if ((_err)!=(a1)) {
  1460. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1);
  1461. rT33crash(C);
  1462. }
  1463. /*FI*/}
  1464. void rT33make(T33 *C){
  1465. C->_output_stream=stderr;
  1466. }
  1467. void rT34put_integer(T34 *C,int a1){
  1468. /*(IRF3*/(((T7*)(T0 *)ms44)->_count)=(0);
  1469. /*)*/rT2append_in(a1,(T0 *)ms44);
  1470. rT34put_string(C,(T0 *)ms44);
  1471. }
  1472. void rT34die_with_code(T34 *C,int a1){
  1473. exit(a1);
  1474. }
  1475. void rT34put_string(T34 *C,T0* a1){
  1476. int _i=0;
  1477. _i=1;
  1478. while (!((_i)>(((T7*)a1)->_count))) {
  1479. rT34put_character(C,rT7_ix64((T7*)a1,_i));
  1480. _i=(_i)+(1);
  1481. }
  1482. }
  1483. int rT34is_connected(T34 *C){
  1484. int R=0;
  1485. R=((int)(C)->_path);
  1486. return R;
  1487. }
  1488. void rT34crash(T34 *C){
  1489. rsp();
  1490. rT34die_with_code(C,1);
  1491. }
  1492. void rT34disconnect(T34 *C){
  1493. int _err=0;
  1494. _err=fclose((C)->_output_stream);
  1495. C->_path=NULL;
  1496. }
  1497. void rT34connect_to(T34 *C,T0* a1){
  1498. C->_mode=(T0 *)ms527;
  1499. C->_output_stream=rT34fopen(C,a1,(C)->_mode);
  1500. /*IF*/{/*AT*/C->_path=a1;
  1501. }
  1502. /*FI*/}
  1503. void * rT34fopen(T34 *C,T0* a1,T0* a2){
  1504. void * R=NULL;
  1505. rT7extend((T7*)a1,'\0');
  1506. rT7extend((T7*)a2,'\0');
  1507. R=(T0 *)fopen(((Tstring *)a1)->_storage,((Tstring *)a2)->_storage);
  1508. rT7remove_last((T7*)a1,1);
  1509. rT7remove_last((T7*)a2,1);
  1510. return R;
  1511. }
  1512. void rT34copy(T34 *C,T0 * a1){
  1513. /*IF*//*AF*//*AE*/
  1514. memcpy(C,a1,s[C->id]);
  1515. /*FI*/}
  1516. void rT34put_character(T34 *C,char a1){
  1517. char _err='\0';
  1518. _err=fputc(a1,(C)->_output_stream);
  1519. /*IF*/if ((_err)!=(a1)) {
  1520. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1);
  1521. rT34crash(C);
  1522. }
  1523. /*FI*/}
  1524. T0 * rT216to_runnable(T216 *C,T0 * a1){
  1525. T0 * R=NULL;
  1526. T0 * _ri=NULL;
  1527. /*IF*/if (!((C)->_run_compound)) {
  1528. C->_run_compound=a1;
  1529. _ri=XrT176to_runnable((C)->_instruction,a1);
  1530. /*IF*/if (!(_ri)) {
  1531. rT216error(XrT176start_position((C)->_instruction),(T0 *)ms1227);
  1532. }
  1533. else {
  1534. C->_instruction=_ri;
  1535. R=(T0 *)C;
  1536. }
  1537. /*FI*/}
  1538. else {
  1539. {T216 *n=((T216*)new(216));
  1540. rT216make(n,(C)->_instruction,(C)->_comment);
  1541. R=(T0 *)n;}
  1542. R=rT216to_runnable((T216*)R,a1);
  1543. }
  1544. /*FI*/return R;
  1545. }
  1546. void rT216error(/*C*/T0 * a1,T0* a2){
  1547. /*UT*/(T45*)oRBC27eh;
  1548. rT45add_position(a1);
  1549. rT45error((T45*)oRBC27eh,a2);
  1550. }
  1551. T0 * rT216add_comment(/*C*/T0 * a1){
  1552. T0 * R=NULL;
  1553. return R;
  1554. }
  1555. T0 * rT216start_position(T216 *C){
  1556. T0 * R=NULL;
  1557. R=XrT176start_position((C)->_instruction);
  1558. return R;
  1559. }
  1560. int rT216use_current(T216 *C){
  1561. int R=0;
  1562. R=XrT176use_current((C)->_instruction);
  1563. return R;
  1564. }
  1565. void rT216compile_to_c(T216 *C){
  1566. XrT176compile_to_c((C)->_instruction);
  1567. }
  1568. void rT216copy(T216 *C,T0 * a1){
  1569. /*IF*//*AF*//*AE*/
  1570. memcpy(C,a1,s[C->id]);
  1571. /*FI*/}
  1572. void rT216make(T216 *C,T0 * a1,T0 * a2){
  1573. C->_instruction=a1;
  1574. C->_comment=a2;
  1575. }
  1576. int rT39end_of_input(T39 *C){
  1577. int R=0;
  1578. R=feof((FILE *)(C)->_input_stream);
  1579. return R;
  1580. }
  1581. int rT39is_connected(T39 *C){
  1582. int R=0;
  1583. R=((int)(C)->_path);
  1584. return R;
  1585. }
  1586.